package com.transaction.demo.base.service;

import com.transaction.demo.base.vo.req.SaveUserRoleListReqVo;
import com.transaction.demo.base.vo.req.UserLoginReqVo;
import com.transaction.demo.base.vo.resp.UserLoginRespVo;
import com.transaction.demo.base.vo.resp.UserMenuResp;
import com.transaction.demo.base.vo.resp.UserRoleResp;
import com.transaction.demo.common.util.ResultPage;
import com.transaction.demo.base.vo.req.SysUserReqVo;
import com.transaction.demo.base.vo.req.SysUserListReqVo;
import com.transaction.demo.base.vo.req.SysUserAddReqVo;
import com.transaction.demo.base.vo.req.SysUserUpdateReqVo;
import com.transaction.demo.base.vo.resp.SysUserRespVo;

/**
 * 描述：用户信息表
 * 作者：马庆智
 * 日期：2023/03/28 17:07:15
 */
public interface SysUserService {

	/**
	 * 查询用户信息表
	 *
	 * @param sysUser 请求参数
	 * @return SysUserResp
	 * @author 马庆智
	 * @date: 2023/03/28 17:07:15
	 */
	SysUserRespVo querySysUser(SysUserReqVo sysUser);

	/**
	 * 查询用户信息表列表
	 *
	 * @param sysUser 请求参数
	 * @return ResultPage<SysUserResp>
	 * @author 马庆智
	 * @date: 2023/03/28 17:07:15
	 */
	ResultPage<SysUserRespVo> querySysUserList(SysUserListReqVo sysUser);

	/**
	 * 添加用户信息表
	 *
	 * @param sysUser 请求参数
	 * @return int
	 * @author 马庆智
	 * @date: 2023/03/28 17:07:15
	 */
	int saveSysUser(SysUserAddReqVo sysUser);

	/**
	 * 删除用户信息表
	 *
	 * @param ids 请求参数
	 * @return int
	 * @author 马庆智
	 * @date: 2023/03/28 17:07:15
	 */
	int deleteSysUser(String ids);

	/**
	 * 更新用户信息表
	 *
	 * @param sysUser 请求参数
	 * @return int
	 * @author 马庆智
	 * @date: 2023/03/28 17:07:15
	 */
	int updateSysUser(SysUserUpdateReqVo sysUser);

	/**
	 * 用户登录
	 *
	 * @param record 登录参数
	 * @return UserLoginResp
	 * @author 马庆智
	 * @date: 2023/3/29 16:14
	 */
	UserLoginRespVo login(UserLoginReqVo record);

	/**
	 * 查询用户菜单
	 *
	 * @param userId 用户id
	 * @return SysUserResp
	 * @author 马庆智
	 * @date: 2023/3/29 17:14
	 */
	UserMenuResp queryUserMenuList(Integer userId);

	/**
	 * 用户角色
	 *
	 * @param userId 用户id
	 * @return List<UserRoleResp>
	 * @author 马庆智
	 * @date: 2023/3/30 9:21
	 */
	UserRoleResp queryUserRoleList(Integer userId);

	/**
	 * 分配用户角色
	 *
	 * @param record 请求参数
	 * @return SysUserResp
	 * @author 马庆智
	 * @date: 2023/3/30 9:18
	 */
	Integer saveUserRoleList(SaveUserRoleListReqVo record);
}